package com.xiumu.service.blog;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiumu.common.core.page.PageQuery;
import com.xiumu.pojo.blog.entity.BlogTag;
import com.xiumu.pojo.blog.query.BlogTagQuery;

import java.util.List;

/**
 * 文章标签 Service 接口
 *
 * @author XiuMu
 * @Date 2023-01-30 14:21:26
 */
public interface BlogTagService extends IService<BlogTag> {
    /**
     * 分页查询
     *
     * @param pageQuery 分页条件
     * @return
     */
    Page<BlogTag> listPage(PageQuery<BlogTagQuery, BlogTag> pageQuery);

    /**
     * 根据条件查询 BlogTag
     *
     * @param blogTag 查询条件
     * @return
     */
    List<BlogTag> listByBlogTag(BlogTagQuery blogTag);

    /**
     * 根据标签名称查询
     *
     * @param tagName 标签名称
     * @return
     */
    BlogTag getByTagName(String tagName);

    /**
     * 创建 BlogTag
     *
     * @param tagName 标签名称
     * @return
     */
    boolean create(String tagName);

    /**
     * 根据标签名称获取标签的 ID, 如果不存在就保存该标签并返回 ID
     *
     * @param tagName 标签名称
     * @return
     */
    Long getIdOrSaveByTagName(String tagName);
}
